Namespace Core.Modules

    Public MustInherit Class Translator

        Public Class TranslatorEventArgs
            Inherits System.EventArgs

            Private _Message As String = String.Empty
            Public Property Message() As String
                Get
                    Return _Message
                End Get
                Set(ByVal value As String)
                    _Message = value
                End Set
            End Property

            Public Sub New(ByVal msg As String)
                _Message = msg
            End Sub

        End Class

        Public Event StatusChanged(ByVal sender As Object, ByVal args As TranslatorEventArgs)

        Public Sub StatusMessage(ByVal msg As String)
            RaiseEvent StatusChanged(Me, New TranslatorEventArgs(msg))
            Application.DoEvents()
        End Sub

        Public MustOverride Function Import(ByVal lines() As String, ByVal cols() As Core.MappedColumn) As Boolean

        Public MustOverride Function Export() As Boolean

    End Class

End Namespace
